﻿using AutoMapper;
using System.Linq.Dynamic.Core;
using Volo.Abp.Application.Dtos;

namespace Himp.Outpatient;

public class OutpatientApplicationAutoMapperProfile : Profile
{
    public OutpatientApplicationAutoMapperProfile()
    {
        /* You can configure your AutoMapper mapping configuration here.
         * Alternatively, you can split your mapping configurations
         * into multiple profile classes for a better organization. */

        CreateMap<OtpRgstType, OtpRgstTypeDto>();
        CreateMap<OtpRgstTypeCreateDto, OtpRgstType>();
        CreateMap<OtpRgstTypeUpdateDto, OtpRgstType>();

        CreateMap<OtpOperRm, OtpOperRmDto>();
        CreateMap<OtpOperRmCreateOrUpdateDto, OtpOperRm>();

        #region 门诊排班

        //门诊排班分类
        CreateMap<OtpSchdType, OtpSchdTypeDto>();
        CreateMap<OtpSchdTypeCreateDto, OtpSchdType>();
        CreateMap<PagedResult<OtpSchdPlan>, PagedResultDto<OtpSchdPlanDto>>();

        //门诊排班计划
        CreateMap<OtpSchdPlan, OtpSchdPlanDto>();
        CreateMap<OtpSchdPlanCreateDto, OtpSchdPlan>();
        CreateMap<OtpSchdPlanUpdateDto, OtpSchdPlan>();

        CreateMap<OtpSchdPeriodCreateDto, OtpSchdPeriod>();
        CreateMap<OtpSchdPeriodUpdateDto, OtpSchdPeriod>();
        CreateMap<OtpSchdPeriod, OtpSchdPeriodDto>();

        CreateMap<OtpSchdRec, OtpSchdRecDto>();
        CreateMap<OtpSchdRecDetl, OtpSchdRecDetlDto>();

        #endregion

        #region 门诊挂号

        CreateMap<OtpRgstRec, OtpRgstRecDto>();

        #endregion

        #region 门诊设置

        CreateMap<OtpSetlType, OtpSetlTypeDto>();
        CreateMap<OtpSetlTypeCreateDto, OtpSetlType>();
        CreateMap<OtpSetlTypeUpdateDto, OtpSetlType>();

        #endregion

        #region 门诊导诊

        CreateMap<OtpQueueRec, OtpQueueRecDto>();
        CreateMap<OtpQueueRecCreateDto, OtpQueueRec>();
        CreateMap<OtpQueueRecUpdateDto, OtpQueueRec>();

        CreateMap<OtpWkstLoginRec, OtpWkstLoginRecDto>();
        CreateMap<OtpWkstLoginRecCreateDto, OtpWkstLoginRec>();

        #endregion

        #region 门诊订单

        CreateMap<OtpPayWay, OtpPayWayDto>();
        CreateMap<OtpPayWayCreateDto, OtpPayWay>();
        CreateMap<OtpPayWayUpdateDto, OtpPayWay>();

        CreateMap<OtpOrdRec, OtpOrdRecDto>();

        CreateMap<OtpPayRec, OtpPayRecDto>();

        #endregion

        #region 门诊就诊

        CreateMap<OtpMdtrtRec, OtpMdtrtRecDto>();

        CreateMap<OtpRxType, OtpRxTypeDto>();
        CreateMap<OtpRxTypeCreateOrUpdateDto, OtpRxType>();

        CreateMap<OtpRxRec, OtpRxRecDto>();
        CreateMap<OtpRxRecCreateDto, OtpRxRec>();
        CreateMap<OtpRxOrd, OtpRxOrdDto>();

        CreateMap<OtpRxRecDetlCreateDto, OtpRxRecDetl>();
        CreateMap<OtpRxRecDetl, OtpRxRecDetlDto>();

        CreateMap<OtpAppyFormCreateOrUpdateDto, OtpAppyForm>();
        CreateMap<OtpAppyForm, OtpAppyFormDto>();

        CreateMap<OtpAppyFormDetlCreateDto, OtpAppyFormDetl>();
        CreateMap<OtpAppyFormDetl, OtpAppyFormDetlDto>();

        #endregion

        #region 门诊发票

        CreateMap<InvoUsedRec, InvoUsedRecDto>();
        CreateMap<InvoUsedRecCreateDto, InvoUsedRec>();

        CreateMap<OtpInvo, OtpInvoDto>();

        #endregion
    }
}
